package uiMain.menuconsola;

import gestorHotel.Hotel;
import gestorHotel.habitacion.Categoria;
import gestorHotel.habitacion.Habitacion;
import gestorHotel.habitacion.Tipo;
import gestorHotel.habitacion.TipoEstadoHabitacion;

import java.util.ArrayList;
import java.util.Scanner;

public class OpcionDeMenuConsultaHabitacionDisponible extends OpcionDeMenu {

	public void ejecutar() {
		Scanner in = new Scanner(System.in);
		String h = seleccionarHotel();
		
		Hotel hotel = Main.hoteles.get(h);
		
		System.out.println("Seleccione una categoría:");
		int k = 0;
		ArrayList<String> opciones = new ArrayList<String>();
		for (Categoria categoria : hotel.getCategorias().values()) {
			System.out.println((k + 1) + ". " + categoria.getNombre());
			opciones.add(categoria.getNombre());
			++k;
		}
		
		System.out.print("Ingrese una opción: ");
		int op = Integer.parseInt(in.nextLine());
		
		String categoria = opciones.get(op - 1);
		
		System.out.println("Seleccione un tipo:");
		k = 0;
		opciones = new ArrayList<String>();
		for (Tipo t : hotel.getTipos().values()) {
			System.out.println((k + 1) + ". " + t.getNombre());
			opciones.add(t.getNombre());
			++k;
		}
		
		System.out.print("Ingrese una opción: ");
		op = Integer.parseInt(in.nextLine());
		
		String tipo = opciones.get(op - 1);
		
		for (Habitacion hab : hotel.getHabitaciones().values()) {
			if (hab.getEstado() == TipoEstadoHabitacion.LIBRE && hab.getCategoria().equals(categoria) &&
					hab.getTipo().equals(tipo)) {
				hab.mostrar();
			}
		}
	}

	public String getDescripcion() {
		return "Consulta habitación disponible.";
	}

}
